Text-based communications using electronic devices such as computers and mobile phones require users of these devices to enter text using real or virtual key boards. Some devices provide for spoken text entry by translating spoken words into text. Existing methods of text entry have limitations that yield inaccuracies in the text. For example, the small size of virtual keyboards results in the selection of the wrong characters. In addition, text recognition software is not completely accurate due to variances in speech quality and voice tone. In certain applications such as text-based messaging, the desire by users is to accomplish text-based communication at speeds that rival spoken communications. However, the entry of text takes longer than speaking. Devices attempt to overcome errors and inaccuracies and to improve communication speeds by providing auto-complete and auto-correction functionality in association with text entry.
Text input devices such as cellular telephones or smartphones provide users with scrollable and selectable lists of words and auto-corrections upon receipt of only the first few letters of any given word. These devices utilize methods such as iTap and T9 to provide this functionality. These capabilities, however, only apply to single words and to the current word being entered. There is no predictive capability or applicability to groups of words or phrases. N-grams have been used extensively in speech recognition and natural language processing to assign probabilities to a current word, given the previous two words. The use of n-grams to auto complete and correct text inputs has been applied to the current word but not to corrections or predictions of previous and subsequent words or to phrases within a given categorical context. Therefore, systems and methods are desired that provide for the auto-correction and prediction of a current phrase as well as previous and subsequent phrases.